Preliminary support for index format v3#2081
Preliminary support for index format v3#2081Byron merged 3 commits intogitpython-developers:mainfrom
Conversation
Byron
left a comment
There was a problem hiding this comment.
Thanks a lot for tackling this!
I think it would be useful to add a small test-index directly, one that is known to be V3. The Gitoxide repository definitely has them: https://github.com/GitoxideLabs/gitoxide/blob/ecd354119c3a8b150a06df7205ddf022a825d6cd/gix-index/tests/fixtures/loose_index/extended-flags.git-index
Thanks again.
test/test_index.py
Outdated
| def test_index_version_v3(self, tmp_dir): | ||
| tmp_dir = Path(tmp_dir) | ||
| with cwd(tmp_dir): | ||
| subprocess.run(["git", "init", "-q"], check=True) |
There was a problem hiding this comment.
Would it be possible to use the Git type instead? That way one would benefit from all the 'extras', especially around finding the right Git binary.
test/test_index.py
Outdated
|
|
||
| repo = Repo(tmp_dir) | ||
|
|
||
| assert len(repo.index.entries) == 1 |
There was a problem hiding this comment.
To test this, I think the index.version must be exposed and validated here.
I don't see at all why it would use index version 3 here.
There was a problem hiding this comment.
To test this, I think the index.version must be exposed and validated here.
Done.
I don't see at all why it would use index version 3 here.
git add -N (--intent-to-add) would produce version 3 index. I added a comment.
There was a problem hiding this comment.
index.version
There's this minor thing that I'm not sure if it's an issue:
Currently, the version field of IndexFile is always set to 2 after __init__. Since it's lazy loaded, it's only after its first read of entries when its version field is set correctly. Do you think we can keep it this way?
OK. I've copied the file here and added a test case |
cca4431 to
acfee98
Compare
acfee98 to
8a884fe
Compare
Byron
left a comment
There was a problem hiding this comment.
Thanks a lot for adding the tests, it looks great now!
#1960